package cn.iocoder.yudao.module.system.dal.dataobject.investment;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
 * 
 * @TableName system_investment
 */
@TableName(value ="system_investment")
@Data
@EqualsAndHashCode(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SystemInvestment extends BaseDO {
    /**
     * 招商项目id
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 商家id
     */
    @TableField(updateStrategy = FieldStrategy.NOT_NULL)
    private Long merchantId;

    /**
     * 招商项目名称
     */
    @TableField(updateStrategy = FieldStrategy.NOT_NULL)
    private String name;

    /**
     * 招商项目描述，默认为空
     */
    private String description;

    /**
     * 招商项目详情信息链接，默认为空
     */
    private String descriptionUrl;

    /**
     * 招商项目状态
     */
    @TableField(updateStrategy = FieldStrategy.NOT_NULL)
    private Integer status;

    /**
     * 招商项目开始时间
     */
    @TableField(updateStrategy = FieldStrategy.NOT_NULL)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime startDate;

    /**
     * 招商项目结束时间
     */
    @TableField(updateStrategy = FieldStrategy.NOT_NULL)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime endDate;

    /**
     * 项目联系人
     */
    @TableField(updateStrategy = FieldStrategy.NOT_NULL)
    private String contactPerson;

    /**
     * 联系邮箱
     */
    private String contactEmail;

    /**
     * 联系电话
     */
    @TableField(updateStrategy = FieldStrategy.NOT_NULL)
    private String contactPhone;

    /**
     * 项目计划书文件url
     */
    @TableField(updateStrategy = FieldStrategy.NOT_NULL)
    private String planUrl;

    @TableField
    private String produceArea;

    @TableField
    private String cover;

    @TableField
    private Integer productType;

}